// pages/More/More.js
const app = getApp()
let reqJs = require('../../utils/req.js')
let util = require('../../utils/util.js')
const QR = require('../../utils/qrcode.js')
let lastNfcTime = 0;


Page({

    /**
     * 页面的初始数据
     */
    data: {
        qtspShow: false,
        getTaskList: [
            // "https://data-h5.oss-cn-shenzhen.aliyuncs.com/yang/2025/0403/hongqi/z1.png",
            // "https://data-h5.oss-cn-shenzhen.aliyuncs.com/yang/2025/0403/hongqi/z2.png",
            // "https://data-h5.oss-cn-shenzhen.aliyuncs.com/yang/2025/0403/hongqi/z3.png",
        ],
        dakaList: [
            "https://data-h5.oss-cn-shenzhen.aliyuncs.com/yang/2025/0403/hongqi/daka/1.png",
        ],
        selectIndex: 0,

        dakaFlag: false, //是否已打卡
        id:"",
        qrCodeShow:false,

    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        console.log(options)
        // if(options)

        // if(app.globalData.arg){

        // 	if(app.globalData.arg.type == 2){
        // 		this.finishMisson(app.globalData.arg.id)
        // 	}

        // }


        // // app.globalData.arg = {}

        // // 订阅NFC事件
        // app.nfcEvent.subscribe(this.handleNfcEvent);

        
        if (options.q) {
            let id = util.getParams(decodeURIComponent(options.q), 'id')
          
            console.log(id)

            this.setData({
                id,
            })

        }



    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        if (typeof this.getTabBar === 'function' &&
            this.getTabBar()) {
            this.getTabBar().setData({
                selected: 1
            })
        }

        // 确保 openid 就绪后再执行后续逻辑
        app.globalData.getOpenidPromise
            .then((openid) => {
                // 此处调用需要 openid 的接口
                this.getMissionList()

                // id存在 则是扫码进来 需要打卡  而且需要找到对应的打卡点并弹窗  
                if(this.data.id){

                    this.finishMisson(this.data.id)
                }


            })
            .catch((err) => {
                console.error('获取 openid 失败:', err);
            });



    },
    createQrCode: function (url, canvasId, cavW, cavH) {
        //调用插件中的draw方法，绘制二维码图片
        QR.api.draw(url, canvasId, cavW, cavH, this, this.canvasToTempImage);
        // setTimeout(() => { this.canvasToTempImage();},100);
    },
    t_bt2(){
        let text = wx.getStorageSync('openid') 

        console.log(text)

        if(text){
            this.createQrCode(text, "qrcodeCanvas", 250, 250);
            this.setData({
                qrCodeShow: !this.data.qrCodeShow,
            })
        }else{
            wx.showToast({
              title: '网络繁忙',
              icon:"error"
            })
        }

    },
    close(){
        // // 微信小程序定时器
        // setTimeout(() => {
            this.setData({
                qrCodeShow:false
            })
        // }, 500);
    
      
    },
    handleNfcEvent(event) {
        const now = Date.now();
        if (now - lastNfcTime < 1000) return; // 1秒内不重复处理
        lastNfcTime = now;
        if (event.type === 'nfc_discovered') {
            // 处理NFC事件
            console.log("处理NFC事件")
            console.log(event.data)

            this.finishMisson(event.data.id)
        }
    },
    scan() {
        let that = this

        // 测试：直接id写死
        // let pid = 1
        // that.signIn(did);

        // 正式
        // 扫码获取打卡id 调用打卡接口
        wx.scanCode({
            onlyFromCamera: true,
            success(res) {
                console.log(res)
                if (res.result.indexOf('platform.easys.co') == -1) {
                    wx.showToast({
                        title: '请识别正确的二维码噢',
                        icon: "none"
                    })
                    return
                }
                if (res.result.indexOf('platform.easys.co/hq/more') == -1) {
                    wx.showModal({
                      title: '提示',
                      content: '请用微信扫码',
                      complete: (res) => {
                        if (res.cancel) {
                          
                        }
                    
                        if (res.confirm) {
                          
                        }
                      }
                    })
                   
                    return
                }
                console.log("扫码成功：" + JSON.stringify(res))
                console.log(res)
                let id = util.parameter(res.result, 'id')

                // if (id == 1 || id == 2 || id == 3) {

                that.finishMisson(id)

                // } else {
                //     wx.showToast({
                //         title: '暂无该互动',
                //         icon: "none"
                //     })
                // }


            }
        })

    },
    getMissionList() {
        // 更新用户列表数据列表数据
        reqJs.getMissionList().then(res => {

            console.log('>>>>>', res)

            let getTaskList = res.data
            this.setData({
                getTaskList
            })

            // 即是扫码进入
            if(this.data.id){
               getTaskList.find((item,index)=>{
                    if(item.missionId == this.data.id){
                        this.setData({
                            selectIndex:index,
                            qtspShow:true,

                            id:""
                        })
                    }
               })
            }


        }).catch(error => {
            console.log(error)
        })
    },
    finishMisson(id) {
        // 更新用户列表数据列表数据
        reqJs.finishMisson(id).then(res => {

            setTimeout(() => {
                wx.showToast({
                    title: '打卡成功',
                  })
            }, 500);
         
           
            this.getMissionList()



        }).catch(error => {
            console.log(error)
        })
    },


    closeMode() {
        this.setData({

            qtspShow: false,
        })
    },
    tapChe(e) {
        this.getMissionList()
        let selectIndex = e.currentTarget.dataset.index
        this.setData({
            selectIndex,
        })
        this.setData({

            qtspShow: true,
        })
        
    },
    tapChe2(e) {
        // let selectIndex = e.currentTarget.dataset.index
        // this.setData({
        //     selectIndex,
        // })
        this.setData({

            qtspShow2: true,
        })
    },
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {
        // 取消订阅
        app.nfcEvent.unsubscribe(this.handleNfcEvent);
    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})